package com.wwj.study.singleton.lazy;

/**
 * Created by lenovo on 2018/11/15.
 * 内部类，需要使用到父对象的时候，会先实例化内部类。
 * 内加载数据：先静态后普通 ，先属性后方法
 * */
public class LazyFive {

    private static Boolean initFlag=false;

    private LazyFive() {

        synchronized (LazyFive.class){
            if (!initFlag) {
                initFlag = !initFlag;
            } else {
                System.out.println("单例模式，违规操作");
            }
        }
    }

    //static 静态类，线程共享
    //final 最终类，不能重写
    public static final LazyFive getInstance(){
        return LazyThreeChild.LAZY_THREE;
    }

    public static class LazyThreeChild{
        public static final LazyFive LAZY_THREE=new LazyFive();
    }
}
